const app = getApp()

Page({

  timeInterval:0,

  /**
   * 页面的初始数据
   */  
  data: {
    // 需要渲染的数据
    isOpenSearch: false,
    isSelects: true,
    currentTab: '0',
    inputSearchContent: "" + app.globalData.queryAllURL,
    // originFiles_view: [],
    // selectCount:0,

    selectCount: [],
    // JS中所需要使用到的全局参数
    // onceCount: 6,  // 一次渲染6个
    originFile_current: [],  // 当前的源文件的列表引用
    originFile_all: [],  // 当前 全部源文件列表
    originFile_file: [],
    originFile_img: [],
    originFile_vedio: [],
    originFile_application: [],

    imagesList: [],
    thumbnail_URL: app.globalData.thumbnail_URL,
    // 加密后的openid
    cipherOpenid: ""
  },

/*******************************************************************************/
/*** 复选框 ***/
/*******************************************************************************/
  // 点击多选 打开复选框
  openCheckBox: function () {
    this.setData({
      isSelects: !this.data.isSelects
    })
    var n = this.data.isSelects
    console.log(n)
    if (!n) {
      wx.hideTabBar({
        animation: true
      })
    } else {
      this.setData({
        selectCount: []
      })
      wx.showTabBar({
        animation: true
      })
    }
  },
  // 复选框中所选的值的ID
  checkboxChange: function (e) {
    this.setData({
      selectCount: e.detail.value
    })
     console.log('checkbox发生change事件，携带value值为：', this.data.selectCount)
  },
  cancelSelect: function () {
    this.setData({
      selectCount: [],
      isSelects: !this.data.isSelects
    })
    wx.showTabBar({
      animation: true
    })
    // this.openCheckBox()
  },
/*******************************************************************************/
/*** TAB控件 ***/
/*******************************************************************************/
  // TAB控件，全部 文档 图片 影音 应用
  switchTab: function(e) {
    if (e.currentTarget.dataset.current == this.data.currentTab) {
      return ;// 若标签号码未变，则不进行下面的操作
    }

    this.setData({ currentTab: e.currentTarget.dataset.current });
    // 每次转换，均转换originFile_current的引用
    this.loadOriginFileByTab();
  },
/*******************************************************************************/
/*** 页面跳转 ***/
/*******************************************************************************/
  // 跳转到hsb管理
  toHSBManager: function() {
    wx.navigateTo({
      url: '../hsb/hsb',
    })
  },
  // 跳转到传输列表
  toTransLists: function () {
    wx.navigateTo({
      url: '../translists/translists',
    })
  },
  toCloudStatus: function () {
    wx.navigateTo({
      url: '../cloudstatus/cloudstatus',
    })
  },
  toHistory: function () {
    wx.navigateTo({
      url: '../history/history',
    })
  },
  toUpload: function () {
    wx.navigateTo({
      url: '../upload/upload',
    })
  },

  // 下载 预览 目前只支持相册
  download: function () {
    // 每次下载一个，循环下载 （不清楚微信支不支持 一次性下载多个文件）
    for (var i in this.data.selectCount) {
      // URL参数列表中的"file=" 例子：{43:"test.png"}
      var file = 'file={' + this.data.selectCount[i] + '}'
      console.log(file)
      wx.downloadFile({
        url: app.globalData.downloadFileFromHSB_URL + '?' + file,
        header: { Cookie: app.globalData.cookie},
        success: function (res) {
          console.log(res)
          // app.getAlbumAuth();
          var imageFilePath = res.tempFilePath;
          if (imageFilePath != null) {
            // 保存到 相册 中
            wx.saveImageToPhotosAlbum({
              filePath: imageFilePath,
              success: function (data) {
                wx.showToast({
                  title: "保存成功",
                })
              }, fail: function (res) {
                console.log(res)
                wx.showToast({
                  title: "保存失败",
                })
              }
            })
          }
        }
      })
    }
    this.cancelSelect()
  },


/*******************************************************************************/
/*** 搜索框 ***/
/*******************************************************************************/
  // 打开搜索框
  openSearch: function () {
    this.setData({
      isOpenSearch: !this.data.isOpenSearch
    })
  },
  // 搜索框实时绑定，实现实时查询
  bindKeyInput: function (e) {
    this.setData({
      inputSearchContent: e.detail.value
    })
  },
  // 搜索框‘取消’按钮，清除输入框内容
  cleanInputSearch: function (){
    this.setData({
      inputSearchContent: ""
    })
  },  

/*******************************************************************************/
/*** 提供给本JS的函数 ***/
/*******************************************************************************/
  getOriginFile_all: function () {
    var _this = this;
    wx.request({
      url: app.globalData.queryAllURL,
      header: { Cookie: app.globalData.cookie },
      data:{
        type: "all",
        pageNum:1
      },
      success: function (res) {
        if (res.length != 0) {
          // 手动清理先前数组
          _this.data.originFile_all.splice(0, _this.data.originFile_all.length);
          // 将字符串形式的对象数组 转换成JSON数组
          _this.data.originFile_all = JSON.parse(res.data)
          console.log(_this.data.originFile_all)
          _this.loadOriginFileByTab();          
        }
      },
      fail: function () {
        wx.showToast({
          title: '网络加载失败....',
          duration: '2000'
        })
      }
    })
  },

  loadOriginFileByTab: function () {
    console.log("tab = " + this.data.currentTab)
    // 每次转换，均转换originFile_current的引用
    switch (this.data.currentTab) {
      case '0': this.chooseOriginFileByType(this.data.originFile_all, "all"); break;
      case '1': this.chooseOriginFileByType(this.data.originFile_file, "file"); break;
      case '2': this.chooseOriginFileByType(this.data.originFile_img, "img"); break;
      case '3': this.chooseOriginFileByType(this.data.originFile_vedio, "vedio"); break;
      case '4': this.chooseOriginFileByType(this.data.originFile_application, "app"); break;
      default: console.log("default"); break;
    }
  },

  chooseOriginFileByType: function (originFiles, type) {
    // console.log("chooseOriginFileByType")
    var types;
    var originFile_all = this.data.originFile_all;
    switch (type) {
      case "all": types = []; break;
      case "file": types = ["doc", "docx", "pdf", "txt", "xls", "xlsx", "ppt", "pptx"]; break;
      case "img": types = ["png", "jpg", "jpeg"]; break;
      case "vedio": types = ["mp4", "avi"]; break;
      case "app": types = ["js"]; break;
    }
    // 若type不是all，则types.length不为0，则originFiles清空
    if (types.length > 0) {
      originFiles.splice(0, originFiles.length);
      for (var j in originFile_all) {
        if (this.existType(originFile_all[j].fileType, types)) {
          originFiles.push(originFile_all[j]);
        }
      }
    }
    // this.data.originFile_current = originFiles;
    this.loadOriginFileView(originFiles);
  },

  existType: function (type, types) {
    for (var i in types) {
      if (type == types[i]) {
        return true;
      }
    }
    return false;
  },

  // 渲染更多的源文件信息
  loadOriginFileView: function (originFiles) {
    for (var index in originFiles) {
      // 根据接收的文件类型字段，fileType，设置当前源文件的渲染时的图片名称
      originFiles[index].imagetype = app.chooseTypeImage(originFiles[index].fileType)
      // 文件字节显示
      originFiles[index].byteSizeView = app.convertByteSize(originFiles[index].originFileByteSize)
      // 时间显示，原先是timestamp
      originFiles[index].timeView = app.convertTimeStamp(originFiles[index].modifyTime)
      // 碎片文件在云上的个数
      originFiles[index].cloudInfo = this.getCloudInfo(originFiles[index].cloudList)
      // image 中src的值
      originFiles[index].src = this.getImageSrc(originFiles[index], app.globalData.cipherOpenid)
    }


    // 开始渲染
    this.setData({
      originFile_current: originFiles
    })

    // console.log("originFile_current = " + this.data.originFile_current)
  },



  getImageSrc: function (originFile, cipherOpenid) {
    return this.data.thumbnail_URL + "/" + originFile.originFileId + "/" + originFile.originFileName + "?cipherOpenid=" + cipherOpenid;
  },

  // 根据cloudList(JSON格式：{"baidu":5,"tengxun":5} )中各个云碎片文件的个数，拼成显示的信息
  getCloudInfo: function (cloudList) {
    var total = 0;
    var info = '';
    for (var cloudName in cloudList) {
      var cloudName_Chinese = app.convertCloudProviderName(cloudName)
      total += cloudList[cloudName]
      info += cloudName_Chinese + ':' + cloudList[cloudName] + " ";
    }
    info = "碎片总数:" + total + " " + info;
    return info;
  },


/*******************************************************************************/
/*** 监听函数 ***/
/*******************************************************************************/
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // app.globalData.userInfo=wx.getStorageSync("userInfo")
    // console.log(app.globalData.userInfo)
    // this.setData({
    //   cipherOpenid: app.globalData.cipherOpenid
    // })
    console.log("app.globalData.cipherOpenid:" + app.globalData.cipherOpenid);
    this.data.cipherOpenid = app.globalData.cipherOpenid
    console.log("cipherOpenid:" + this.data.cipherOpenid);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var _this = this
    this.timeInterval = setInterval(function () {
      _this.getOriginFile_all();
    }, 1000)    //代表1秒钟发送一次请求
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    clearInterval(this.timeInterval) // 停止定时器
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearInterval(this.timeInterval) // 停止定时器
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})